package shujia.day07.ketang;

/*
    Object: 是java中所有类共同的父类【内置或者自定义】,任何一个类的对象都可以使用Object类中的功能

    Object类中的成员方法：
        public int hashCode() 可以看作是一个对象的地址值的另外一种体现，不同的对象可能是一样
        public final Class getClass() 获取当前对象对应类的Class对象
        public String toString()  将一个对象以指定的字符串格式输出, 默认情况下也可以看作是一个地址值的表现形式
            java中直接输出对象名，默认调用的就是toString()方法
            我们正常情况下，直接输出对象名，是想观察对象中的成员变量值的情况，重写toString()方法


    两个对象的比较方式： ==
        如果==两边是一个基本数据类型的变量，比较的是具体的数值大小
        如果==两边是引用数据类型的变量，比较的是对象的地址值
 */

class Student1{
    String name;
    int age;

    @Override
    public String toString() {
        return "Student1{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

public class ObjectDemo1 {
    public static void main(String[] args) {
        Student1 s1 = new Student1();
        s1.name = "张三";
        s1.age = 18;
        System.out.println("姓名：" + s1.name + ", 年龄：" + s1.age);

        System.out.println("-----------------------------------");
        Student1 s2 = new Student1();
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());
        System.out.println(s1==s2);
        System.out.println("-----------------------------------");
        System.out.println(s1.getClass().getName());
        System.out.println("-----------------------------------");
        System.out.println(s1.toString()); // shujia.day07.ketang.Student1@4554617c
        System.out.println(s1); // shujia.day07.ketang.Student1@4554617c

    }
}
